package com.work.simpleoa.gencode;

import com.work.simpleoa.emun.TemplateEmun;
import com.work.simpleoa.util.BeetlUtils;


/**
 * @description: 代码自动生成抽象类
 * @author: liuwangzhen
 * @date: 2018-12-17 上午9:33
 */
public abstract class AbstractAutoGenChain implements IAutoGenChain{

    //每一个Model对应的自己的属性,用于区分具体生成文件
    public TemplateEmun myEmun;

    public AbstractAutoGenChain(TemplateEmun templateEmun){
        myEmun = templateEmun;
    }

    @Override
    public Boolean distinctTypeAndGen(TemplateEmun templateEmun){
        //输出请求的模板文件信息
        getLogger().info("即将处理的模板信息为:{}",templateEmun);
        Boolean genCodeFlag;
        //判断当前需要生成的文件类型
        if (isCurrentType(templateEmun)) {
              //所需要的生成文件 模板是否存在
            genCodeFlag = genCurrentTypeFile();
        } else {
            genCodeFlag = nextGenChain(templateEmun);
        }
        return genCodeFlag;
    }



    @Override
    public Boolean genCurrentTypeFile(){
       return  BeetlUtils.genCode();
    }



}
